<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>dblink_get_pkey</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 9.1.2 Documentation"
HREF="index.html"><LINK
REL="UP"
TITLE="dblink"
HREF="dblink.html"><LINK
REL="PREVIOUS"
TITLE="dblink_cancel_query"
HREF="contrib-dblink-cancel-query.html"><LINK
REL="NEXT"
TITLE="dblink_build_sql_insert"
HREF="contrib-dblink-build-sql-insert.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2011-12-01T22:07:59"></HEAD
><BODY
CLASS="REFENTRY"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
><A
HREF="index.html"
>PostgreSQL 9.1.2 Documentation</A
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
TITLE="dblink_cancel_query"
HREF="contrib-dblink-cancel-query.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="dblink.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="20%"
ALIGN="right"
VALIGN="top"
><A
TITLE="dblink_build_sql_insert"
HREF="contrib-dblink-build-sql-insert.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="CONTRIB-DBLINK-GET-PKEY"
></A
>dblink_get_pkey</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN131362"
></A
><H2
>Name</H2
>dblink_get_pkey&nbsp;--&nbsp;returns the positions and field names of a relation's
    primary key fields
   </DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN131365"
></A
><H2
>Synopsis</H2
><PRE
CLASS="SYNOPSIS"
>dblink_get_pkey(text relname) returns setof dblink_pkey_results</PRE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN131367"
></A
><H2
>Description</H2
><P
>    <CODE
CLASS="FUNCTION"
>dblink_get_pkey</CODE
> provides information about the primary
    key of a relation in the local database.  This is sometimes useful
    in generating queries to be sent to remote databases.
   </P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN131371"
></A
><H2
>Arguments</H2
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="PARAMETER"
>relname</TT
></DT
><DD
><P
>       Name of a local relation, for example <TT
CLASS="LITERAL"
>foo</TT
> or
       <TT
CLASS="LITERAL"
>myschema.mytab</TT
>.  Include double quotes if the
       name is mixed-case or contains special characters, for
       example <TT
CLASS="LITERAL"
>"FooBar"</TT
>; without quotes, the string
       will be folded to lower case.
      </P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN131382"
></A
><H2
>Return Value</H2
><P
>    Returns one row for each primary key field, or no rows if the relation
    has no primary key.  The result row type is defined as

</P><PRE
CLASS="PROGRAMLISTING"
>CREATE TYPE dblink_pkey_results AS (position int, colname text);</PRE
><P>

    The <TT
CLASS="LITERAL"
>position</TT
> column simply runs from 1 to <TT
CLASS="REPLACEABLE"
><I
>N</I
></TT
>;
    it is the number of the field within the primary key, not the number
    within the table's columns.
   </P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN131388"
></A
><H2
>Examples</H2
><PRE
CLASS="SCREEN"
>CREATE TABLE foobar (
    f1 int,
    f2 int,
    f3 int,
    PRIMARY KEY (f1, f2, f3)
);
CREATE TABLE

SELECT * FROM dblink_get_pkey('foobar');
 position | colname
----------+---------
        1 | f1
        2 | f2
        3 | f3
(3 rows)</PRE
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="contrib-dblink-cancel-query.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="contrib-dblink-build-sql-insert.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>dblink_cancel_query</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="dblink.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>dblink_build_sql_insert</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>